#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Core;
using Cephei.Core.Generic;
using Microsoft.FSharp.Core;
namespace Cephei.QL.Math.Integrals
{
    /// <summary> 
	/// ! References: Gauss quadratures and orthogonal polynomials  G.H. Gloub and J.H. Welsch: Calculation of Gauss quadrature rule. Math. Comput. 23 (1986), 221-230  "Numerical Recipes in C", 2nd edition, Press, Teukolsky, Vetterling, Flannery,  The polynomials are defined by the three-term recurrence relation \f[ P_{k+1}(x)=(x-\alpha_k) P_k(x) - \beta_k P_{k-1}(x) \f] and \f[ \mu_0 = \int{w(x)dx} \f]
	/// </summary>
    [Guid ("D6ED27FB-8F3A-4614-9830-5856361D0B7D"),ComVisible(true)]
	public interface IGaussianOrthogonalPolynomial 
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        /// <summary> 
		/// 
		/// </summary>
		 Double Alpha(UInt64 i);
        /// <summary> 
		/// 
		/// </summary>
		 Double Beta(UInt64 i);
        /// <summary> 
		/// 
		/// </summary>
		 Double Mu_0 {get;}
        /// <summary> 
		/// 
		/// </summary>
		 Double Value(UInt64 i, Double x);
        /// <summary> 
		/// 
		/// </summary>
		 Double W(Double x);
        /// <summary> 
		/// 
		/// </summary>
		 Double WeightedValue(UInt64 i, Double x);
    }   

    /// <summary> 
	/// ! References: Gauss quadratures and orthogonal polynomials  G.H. Gloub and J.H. Welsch: Calculation of Gauss quadrature rule. Math. Comput. 23 (1986), 221-230  "Numerical Recipes in C", 2nd edition, Press, Teukolsky, Vetterling, Flannery,  The polynomials are defined by the three-term recurrence relation \f[ P_{k+1}(x)=(x-\alpha_k) P_k(x) - \beta_k P_{k-1}(x) \f] and \f[ \mu_0 = \int{w(x)dx} \f] Factory
	/// </summary>
   	[ComVisible(true)]
    public interface IGaussianOrthogonalPolynomial_Factory 
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
    }
}

